Baner
; В начало ; Новости ; Теория ; Ресурсы ; Ссылки ; Форум ; Почта ;
Математика и физика
2D графика

   DirectDraw:
3D графика

   OpenGL:
Rambler's Top100 Rambler's Top100
Плоскости.
Плоскости - важное понятие 3D графики. Плоскость - бесконечная плоская пластинка, которая делит пространство на два полупространства. Любая плоскость может быть задана тремя вертексами. Plane Важнейшей характеристикой плоскости является нормаль. Нормаль - это единичный вектор, перпендикулярный самой плоскости, обычно обозначается буквой n. Определить нормаль можно с помощью векторного произведения векторов AB и AC. Плоскости заются уравнением вида:
Ax+Bx+Cz+D = 0
Здесь A, B, C - соответственно координады x, y, z вектора нормали; D - минимальное расстояние до начала координат. С плоскостями связана очень важная тема определения столкновений объектов. Поэтому необходимо уметь определять расстояние от точки до плоскости, точку пересечения прямой и плосккости и т.д. В этой главе будет рассказано как это делается.

Пункт первый: определение расстояния от точки до плоскости. Делается это невероятно просто. Как уже говорилось в главе о векторах: если скалярно умножить вектор на единичный, то получим длину проекции его на прямую, образуемую единичным вектором. В нашем случае единичным будет PlaneVertexDist вектор нормали, а другим будет являться вектор от начала координат до нашей точки. Находим скалярное произведение этих векторов - получаем длину O'A, вычитаем из этого показатель плоскости D - находим искомое расстояние. Непонятно?: смори на картинку. Тут синяя прямая - это плоскость: вид сбоку, n - нормаль, A - точка расстояние от которой до плоскости нужнно определить, O - начало координат, NO' = D. Думаю все понятно.

Пункт второй: определение пересечения линий сплоскостью. Это тоже не шибко сложно. Опять обращаемся к картинке. PlaneLineIntersect Снова синенькая линия - это плоскость сбоку, AB - рассматриваемая прямая. Сначала найдем скалярное произведение вектора нормали, и вектора AB. Затем, отношение получившейся длины AB' к AN, где AN расстояние от точки A до плоскости. Умножаем вектор AB на полученный коэфициент, получаем вектор AC, соединяющий точку A и ту самую искомую точку пересечения. Теперь для конкретного случая линии нужно найти показатель P и поверить его на принадлежность соответствующему промежутку.

Опять же для удобства работы с плоскостями можно создать класс. Если лень, возьмите готовый.

Используются технологии uCoz